/*
@Time: 2025/9/23 04:18
@Author: Leslie
@Function: 登录日志控制层
*/

package controller

import (
	"admin_api/api/entity"
	"admin_api/api/service"
	"github.com/gin-gonic/gin"
	"strconv"
)

// GetSysLoginInfoList 分页获取登录日志列表
// @Summary 分页获取登录日志列表接口
// @Produce json
// @Description 分页获取登录日志列表接口
// @BasePath /api
// @Param PageNum query int false "分页数"
// @Param PageSize query int false "每页数"
// @Param Username query string false "用户名"
// @Param LoginStatus query string false "登录状态（1-成功 2-失败）"
// @Param BeginTime query string false "开始时间"
// @Param EndTime query string false "结束时间"
// @Success 200 {object} result.Result
// @router /sysLoginInfo/list [get]
// @Security ApiKeyAuth
func GetSysLoginInfoList(c *gin.Context) {
	PageSize, _ := strconv.Atoi(c.Query("pageSize"))
	PageNum, _ := strconv.Atoi(c.Query("pageNum"))
	Username := c.Query("username")
	LoginStatus := c.Query("loginStatus")
	BeginTime := c.Query("beginTime")
	EndTime := c.Query("endTime")
	service.SysLoginInfoService().GetSysLoginInfoList(c, Username, LoginStatus,
		BeginTime, EndTime, PageSize, PageNum)
}

// BatchDeleteSysLoginInfo 批量删除登录日志
// @Summary 批量删除登录日志接口
// @Produce json
// @Description 批量删除登录日志接口
// @BasePath /api
// @Param data body entity.DelSysLoginInfoDto true "data"
// @Success 200 {object} result.Result
// @router /sysLoginInfo/batch/delete [delete]
// @Security ApiKeyAuth
func BatchDeleteSysLoginInfo(c *gin.Context) {
	var dto entity.DelSysLoginInfoDto
	_ = c.BindJSON(&dto)
	service.SysLoginInfoService().BatchDeleteSysLoginInfo(c, dto)
}

// DeleteSysLoginInfoById 根据ID删除登录日志
// @Summary 根据ID删除登录日志接口
// @Produce json
// @Description 根据ID删除登录日志接口
// @BasePath /api
// @Param data body entity.SysLoginInfoIdDto true "data"
// @Success 200 {object} result.Result
// @router /sysLoginInfo/delete [delete]
// @Security ApiKeyAuth
func DeleteSysLoginInfoById(c *gin.Context) {
	var dto entity.SysLoginInfoIdDto
	_ = c.BindJSON(&dto)
	service.SysLoginInfoService().DeleteSysLoginInfo(c, dto)
}

// CleanSysLoginInfo 清空登录日志
// @Summary 清空登录日志接口
// @Produce json
// @Description 清空登录日志接口
// @BasePath /api
// @Success 200 {object} result.Result
// @router /sysLoginInfo/clean [delete]
// @Security ApiKeyAuth
func CleanSysLoginInfo(c *gin.Context) {
	service.SysLoginInfoService().CleanSysLoginInfo(c)
}
